using System;
using System.Collections.Generic;
using System.Text;
using MIMPGameLibrary;

namespace MIMPWinForms.MIMPGameServices
{
    /// <summary>
    /// Defines an interface whose primary purpose is to fire events that describe user interaction with the main game screen.
    /// </summary>
    public interface IGameScreenEventsService
    {
        /// <summary>
        /// Occurs when a HexDisplay is clicked on with the left mouse button. 
        /// PrimaryEventData is the Hex associated with the clicked HexDisplay.
        /// SecondaryEventData is a Keys flag indicating whether Shift, Control, and/or Alt were held down while clicking.
        /// </summary>
        event EventHandler<EventArgs<Hex, System.Windows.Forms.Keys>> HexLeftClicked;
        /// <summary>
        /// Occurs when a HexDisplay is clicked on with the right mouse button. 
        /// PrimaryEventData is the Hex associated with the clicked HexDisplay.
        /// SecondaryEventData is a Keys flag indicating whether Shift, Control, and/or Alt were held down while clicking.
        /// </summary>
        event EventHandler<EventArgs<Hex, System.Windows.Forms.Keys>> HexRightClicked;
        /// <summary>
        /// Occurs when a HexDisplay is double-clicked on with the left mouse button. 
        /// PrimaryEventData is the Hex associated with the clicked HexDisplay.
        /// SecondaryEventData is a Keys flag indicating whether Shift, Control, and/or Alt were held down while clicking.
        /// </summary>
        event EventHandler<EventArgs<Hex, System.Windows.Forms.Keys>> HexDoubleClicked;
    }
}
